# -*- coding: UTF-8 -*-
"""
@File    ：第二周-第三节-作业.py
@Author  ：Super
@Date    ：2020/12/26
@Desc    ：
"""


class List(object):
    """
    列表操作类
    """
    List = ['default', 'list', 'value:']

    @classmethod
    def create(cls):
        """
        将元素添加到列表末尾
        """
        cls.List.append('name')
        return cls.List

    @classmethod
    def delete(cls):
        """
        pop() 从列表末尾删除元素并返回删除的元素
        """
        pop_ele = cls.List.pop()
        return pop_ele

    @classmethod
    def select_sort(cls):
        """
        返回排序后的列表
        """
        cls.List.sort(reverse=True)
        return cls.List

    @classmethod
    def update(cls):
        cls.List[2] = 'update_value'
        return cls.List


class Dict(object):
    """
    字典操作类
    """
    Dict = {'default': 'value'}

    @classmethod
    def create(cls):
        """
        新增字典元素
        """
        cls.Dict['name'] = 'Dict'
        return cls.Dict

    @classmethod
    def delete(cls):
        """
        删除字典元素并返回值
        """
        return cls.Dict.pop('name')

    @classmethod
    def retrieve(cls):
        """
        查询键返回值，若键不存在则返回默认值None
        """
        return cls.Dict.get('default', 'None')

    @classmethod
    def update(cls):
        """
        更新字典值
        """
        cls.Dict['default'] = 'update_value'
        return cls.Dict


class Tuple(object):
    """
    元祖操作类
    """
    Tuple = ('default', 'list', 'value:',)

    @classmethod
    def create(cls):
        """
        元组创建 无方法
        """
        pass

    @classmethod
    def delete(cls):
        """
        元祖元素删除 无方法
        """
        pass

    @classmethod
    def retrieve(cls):
        """
        元祖索引取值，index,切片
        """
        index_0 = cls.Tuple[0]
        setion = cls.Tuple[0:2]
        return index_0, setion  # 返回索引值为0的值, 返回0-2切片范围的值

    @classmethod
    def update(cls):
        """
        元祖更新 无方法
        """
        pass


class Set(object):
    """
    集合操作类
    """
    Set = {'default', 'value'}

    @classmethod
    def create(cls):
        """
        新增集合元素
        """
        cls.Set.add('name')
        return cls.Set

    @classmethod
    def delete(cls):
        """
        删除集合元素
        """
        cls.Set.remove('value')
        return cls.Set

    @classmethod
    def retrieve(cls):
        """
        查询 元素 是否存在集合
        return True or False
        """
        return 'default' in cls.Set

    @classmethod
    def update(cls):
        """
        更新集合
        """
        new_set = cls.Set.union({'age', 'height'})
        return new_set


if __name__ == '__main__':
    print('列表新增: ', List.create())
    print('列表删除: ', List.delete())
    print('列表排序: ', List.select_sort())
    print('列表更新: ', List.update())
    print('字典新增：', Dict.create())
    print('字典删除：', Dict.delete())
    print('字典检索：', Dict.retrieve())
    print('字典更新：', Dict.update())
    print('元祖检索：', Tuple.retrieve())
    print('集合新增：', Set.create())
    print('集合删除：', Set.delete())
    print('集合更新：', Set.update())
    print('集合检索：', Set.retrieve())
